স্প্রিং বুট (Spring Boot) একটি জনপ্রিয় ফ্রেমওয়ার্ক যা জাভা (Java) ভিত্তিক অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত হয়। ORM (Object-Relational Mapping) হল এমন একটি প্রযুক্তি যা অবজেক্ট ও রিলেশনাল ডেটাবেসের মধ্যে একটি সেতুবন্ধন তৈরি করে। স্প্রিং বুট ওআরএম ব্যবহারের মাধ্যমে আমরা সহজে ডেটাবেসের সাথে কাজ করতে পারি, যেমন ডেটা ইনসার্ট, আপডেট, ডিলিট, বা কুয়েরি করা। স্প্রিং বুট সাধারণত JPA (Java Persistence API), Hibernate বা অন্যান্য ORM টুলগুলির সাথে ইন্টিগ্রেট করা হয়।
স্প্রিং বুট ORM-এ জিপিএ (JPA) ব্যবহার
স্প্রিং বুট ORM সাধারণত JPA (Java Persistence API) এবং Hibernate এর সাথে ব্যবহৃত হয়। JPA একটি স্ট্যান্ডার্ড ইন্টারফেস যা রিলেশনাল ডেটাবেসের সাথে অবজেক্টগুলিকে ম্যাপ করতে সাহায্য করে। স্প্রিং ডেটা JPA (Spring Data JPA) একটি শক্তিশালী লাইব্রেরি যা ডেটাবেসের সাথে কাজ করার প্রক্রিয়াকে আরও সহজ করে তোলে।
উদাহরণ: স্প্রিং বুট এবং JPA Integration
pom.xml ফাইলে প্রয়োজনীয় ডিপেনডেন্সি যোগ করুন:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
application.properties ফাইলে ডেটাবেস সংযোগের কনফিগারেশন:
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
Entity ক্লাস তৈরি করুন:
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Product {
@Id
private Long id;
private String name;
private double price;
// getters and setters
}
Repository Interface তৈরি করুন:
import org.springframework.data.jpa.repository.JpaRepository;
public interface ProductRepository extends JpaRepository<Product, Long> {
}
Controller ক্লাস:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductRepository productRepository;
@PostMapping
public Product createProduct(@RequestBody Product product) {
return productRepository.save(product);
}
@GetMapping
public List<Product> getAllProducts() {
return productRepository.findAll();
}
}
স্প্রিং বুট এবং NoSQL Integration
NoSQL ডেটাবেস (যেমন MongoDB, Cassandra ইত্যাদি) রিলেশনাল ডেটাবেস থেকে ভিন্ন ধরনের ডেটা স্টোরেজ ব্যবস্থাপনা প্রদান করে। স্প্রিং বুটের সাহায্যে NoSQL ডেটাবেসের সাথে ইন্টিগ্রেশন করা সম্ভব, যা ডেটা মডেলিং এবং স্কেলেবিলিটি সমাধান করতে সাহায্য করে।
স্প্রিং বুট MongoDB-এর মতো NoSQL ডেটাবেসের সাথে একীভূত হতে পারে, এবং স্প্রিং ডেটা MongoDB (Spring Data MongoDB) একটি সহজ লাইব্রেরি যা MongoDB-এর সাথে কাজ করতে সাহায্য করে।
স্প্রিং বুট এবং MongoDB Integration
উদাহরণ: স্প্রিং বুট এবং MongoDB Integration
pom.xml ফাইলে MongoDB ডিপেনডেন্সি যোগ করুন:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
application.properties ফাইলে MongoDB কনফিগারেশন:
spring.data.mongodb.uri=mongodb://localhost:27017/mydb
Entity ক্লাস তৈরি করুন:
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Document(collection = "products")
public class Product {
@Id
private String id;
private String name;
private double price;
// getters and setters
}
Repository Interface:
import org.springframework.data.mongodb.repository.MongoRepository;
public interface ProductRepository extends MongoRepository<Product, String> {
}
Controller ক্লাস:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/products")
public class ProductController {
@Autowired
private ProductRepository productRepository;
@PostMapping
public Product createProduct(@RequestBody Product product) {
return productRepository.save(product);
}
@GetMapping
public List<Product> getAllProducts() {
return productRepository.findAll();
}
}
স্প্রিং বুট ORM এবং NoSQL Integration-এর মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনকে আরও কার্যকরী ও স্কেলেবল করতে পারেন, কারণ এটি ডেটাবেসের সাথে সহজে কাজ করার পাশাপাশি অ্যাপ্লিকেশনের পারফরম্যান্সও উন্নত করে।
Read more